package com.example.contestsystem.Dao;

import com.example.contestsystem.Entity.SignUpContest;
import jakarta.transaction.Transactional;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;

import java.util.List;

public interface SignUpContestRepository extends JpaRepository<SignUpContest, Integer> {
    /*
     * 此接口用于
     */

    /**
     * 此方法通过学生账号（报名表）找到学生参加的所有竞赛
     * This fun finds all contests student participates by student's account(Table SignUpContest)
     * @param stuAccount 学生账号
     * @return 竞赛id列表
     */
    List<SignUpContest> findByStuAccount(int stuAccount);

    /**
     * 通常不会使用此方法，无使用场景
     * @return
     */
    List<SignUpContest> findByContestId(String contestId);

    @Modifying
    @Transactional
    void deleteByContestIdAndStuAccount(String contestId, int stuAccount);

    SignUpContest findByContestIdAndStuAccount(String contestId, int stuAccount);

    @Modifying
    @Transactional
    void deleteByContestId(String contestId);

}
